﻿namespace EFS.RC.CC.CHL.Loggers.Messages
{
	public class Conversation : EFS.RC.CC.CHL.Loggers.Messages.Message
	{
		/// Constructor
		public Conversation(
			System.Guid conversationGuid,
			System.Int32? endPointID,
			System.String customerUri,
			System.Guid? agentADGuid,
			System.Guid? supervisorADGuid,
			System.Int64? hwPartyID,
			System.Int32? hwApplicantID,
			System.Int32? conversationClassID,
			EFS.RC.CC.Events.Conversation eventCode)
			: base()
		{
			// check
			EFS.Common.Verify.Guid(conversationGuid, "conversationGuid");

			// set
			this.ConversationGuid = conversationGuid;
			this.EndPointID = endPointID;
			this.CustomerUri = customerUri;
			this.AgentADGuid = agentADGuid;
			this.SupervisorADGuid = supervisorADGuid;
			this.EventCode = eventCode;
			this.HWPartyID = hwPartyID;
			this.HWApplicantID = hwApplicantID;
			this.ConversationClassID = conversationClassID;

			// add to list
			EFS.RC.CC.CHL.Loggers.Logger.Instance.Add(this);
		}

		/// Properties
		public System.Guid ConversationGuid { get; private set; }
		public System.Int32? EndPointID { get; private set; }
		public System.String CustomerUri { get; private set; }
		public System.Guid? AgentADGuid { get; private set; }
		public System.Guid? SupervisorADGuid { get; private set; }
		public EFS.RC.CC.Events.Conversation EventCode { get; private set; }
		public System.Int64? HWPartyID { get; private set; }
		public System.Int32? HWApplicantID { get; private set; }
		public System.Int32? ConversationClassID { get; private set; }
	}

}